package me.spring.cloud.common.components.monitor.aop;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

import me.spring.cloud.common.components.monitor.constant.Constant;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * Metric 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和，业务指标最低统计粒度为1分钟。
 */
@Retention(RUNTIME)
@Target(ElementType.METHOD)
public @interface MonitorMetricSum {

  /** Metric类型名称，记录在cat中 */
  String metricType() default Constant.MONITORMETRIC;

  /** 统计名称 */
  String businessKey();

  /** 累计key */
  String sumKey();

  /** 计数单位 */
  double num() default 1d;

}
